// 取决于路径别名或相对路径

export function getEnvBaseUrl() {
  // 请求基准地址
  let baseUrl = import.meta.env.VITE_SERVER_BASEURL

  const {
    miniProgram: { envVersion },
  } = uni.getAccountInfoSync()

  switch (envVersion) {
    case 'develop':
      baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_DEVELOP || baseUrl
      break
    case 'trial':
      baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_TRIAL || baseUrl
      break
    case 'release':
      baseUrl = import.meta.env.VITE_SERVER_BASEURL__WEIXIN_RELEASE || baseUrl
      break
  }

  return baseUrl
}

export function navigateBack() {
  const pages = getCurrentPages()
  if (pages.length === 2) {
    uni.navigateBack({
      delta: 1,
    })
  }
  else if (pages.length === 1) {
    uni.switchTab({
      url: '/pages/home/index',
    })
  }
  else {
    uni.navigateBack({
      delta: 1,
    })
  }
}

/**
 * 格式化价格，支持货币符号和多种异常处理
 */

/**
 * 获取当前页面路径
 * @returns 当前页面路径
 */
export function getCurrentPath() {
  const pages = getCurrentPages()
  const currentPage = pages[pages.length - 1]
  return currentPage.route || ''
}


/**
 * 格式化价格，保留两位小数
 * @param price - 价格数值
 * @param currency - 货币符号，默认为空字符串
 * @returns 格式化后的价格字符串
 * @example
 * formatPrice(123.456) // "123.46"
 * formatPrice('99.9', '¥') // "¥99.90"
 * formatPrice(1234.5678, '
 */
export function formatPrice(
  price: number | string,
  currency: string = '',
): string {
  // 处理输入为字符串的情况
  const numPrice = typeof price === 'string' ? Number.parseFloat(price) : price

  // 检查是否为有效数字
  if (Number.isNaN(numPrice)) {
    return '0.00'
  }

  // 保留两位小数
  const formattedPrice = numPrice.toFixed(2)

  // 如果需要添加货币符号
  if (currency) {
    return `${currency}${formattedPrice}`
  }

  return formattedPrice
}
